Runtime Code Generation with JVM and CLR

نویسنده

  • Peter Sestoft
چکیده

Modern bytecode execution environments with optimizing just-in-time compilers, such as Sun’s Hotspot Java Virtual Machine, IBM’s Java Virtual Machine, and Microsoft’s Common Language Runtime, provide an infrastructure for generating fast code at runtime. Such runtime code generation can be used for efficient implementation of parametrized algorithms. More generally, with runtime code generation one can introduce an additional binding-time without performance loss. This permits improved performance and improved static correctness guarantees. We report on several experiments with runtime code generation on modern execution platforms. In particular, we show how to introduce C#-style delegates in Java using runtime code generation, to avoid most of the overhead of wrapping and unwrapping method arguments and method results usually incurred by reflective method calls. Furthermore, we give a high-speed implementation of the Advanced Encryption Standard (AES, also known as Rijndael) in C# using runtime code generation. Finally, we experiment with sparse matrix multiplication using runtime code generation on both platforms.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Common Language Runtime: a new virtual machine

Virtual Machines provide a runtime execution platform combining bytecode portability with a performance close to native code. An overview of current approaches precedes an insight into Microsoft CLR (Common Language Runtime), comparing it to Sun JVM (Java Virtual Machine) and to a native execution environment (IA 32). A reference is also made to CLR in a Unix platform and to techniques on how C...

متن کامل

A Project Summary High-Assurance Common Language Runtime

Component software platforms, such as the Java Virtual Machine (JVM) and Microsoft’s .NET Common Language Runtime (CLR), provide a secure virtual machine in which components developed independently and in different source languages can smoothly interoperate. Foundational Proof-Carrying Code (FPCC) and Certified Binaries (CB) are promising new technologies for building high-confidence software s...

متن کامل

Practical, Dynamic Information-flow for Virtual Machines

For decades, secure operating systems have incorporated mandatory access control (MAC) techniques. Surprisingly, mobile-code platforms such as the Java Virtual Machine (JVM) and the .NET Common Language Runtime (CLR) have largely ignored these advances and have implemented a far weaker security that does not reliably track ownership and access permissions for individual data items. We have impl...

متن کامل

Sealing OS Processes to Improve Dependability and Security

On most modern operating systems, a process is a hardware-protected abstraction for executing potentially mutable code and data. Common features of processes include: dynamic code loading, dynamic code generation, access to cross-process shared memory, and a universal API. This paper argues that many of the dependability and security weaknesses of modern systems are exacerbated by this open pro...

متن کامل

Towards Supporting Multiple Execution Environments for UML/OCL Models at Runtime (Position Paper)

Our approach allows a developer to verify whether a model corresponds to a concrete implementation in terms of the JVM (Java Virtual Machine) by validating assumptions about model structure and behavior. In previous work, we focused on (a) the validation of static model properties by monitoring invariants, (b) basic dynamic properties by specifying preand postconditions of an operation and (c) ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2002